1. Field of the Invention
The present invention relates to a communication device such as a computer peripheral device having a communication function, a method of controlling the communication device, and a system including the communication device.
2. Description of the Related Art
A typical example of a computer peripheral device is a printer that is driven by a printer driver. Usually, for every printer model or every operating system (OS) version, a separate printer driver is provided. Thus, development of printer drivers compatible to a large number of printer models/OS versions requires a substantial amount of effort. Moreover, due to the rise in the number of printer drivers bundled to an OS, there has been an increase in the required capacity for bundling and an increase in the time and effort of managing requests from printer driver developers to OS developers. Even from the user perspective, since it is necessary to perform the task of installing or uninstalling printer drivers for every different printer, user-friendliness gets affected at the time of using a printer.
Japanese Patent Application Laid-open No. 2008-165654 discloses a technology in which a common gateway interface (CGI) program run by a browser function of a multifunction peripheral (MFP) determines the version of a printer driver, and when a device driver needs to be updated, sends response information including driver update information that is necessary for updating the device driver to a personal computer (PC). On a remote user interface (UI) on a client PC, the user of that client PC is notified that it is necessary to obtain the latest printer driver with the information of the source destination of the latest printer driver.
However, although the technology disclosed in Japanese Patent Application Laid-open No. 2008-165654 enhances the user-friendliness to a certain extent, while updating a printer driver, the user still needs to obtain the necessary driver and then install it. Hence, it remains the case that a printer driver is installed for each printer model/OS version.
In view of the abovementioned problem, the inventors of the present invention invented a technology with the aim of reducing the number of bundled drivers to an OS and making it possible to update a device driver while freeing the user from performing the conventional task of obtaining the device driver. In the invention, an external apparatus, such as a PC, that includes a device driver for driving a computer peripheral device, such as a printer, obtains device information of the computer peripheral device (information on a function of the device) and updates the device driver by automatically producing the device driver based on the device information. The device driver produced in this way is hereinafter referred to as an on-demand driver and the description thereof is given later. Conventionally, the device information (for example, a generic printer description (GDP) file) of a computer peripheral device is stored in a device driver itself. Hence, each time a computer peripheral device is changed, it is necessary to obtain and install a device driver for the device.
In the abovementioned invention, if the device configuration changes when an optional function is newly added to the computer peripheral device or if there is a difference in settings in each usage environment, then it is sometimes necessary to rewrite (update) the device information. Besides, since it is not possible to include in the device information regarding functions that do not currently exist information in advance, it becomes necessary to update the device information sometime in the future.